home *** CD-ROM | disk | FTP | other *** search
/ PsL Monthly 1993 December / PSL Monthly Shareware CD-ROM (December 1993).iso / prgmming / dos / pascal / curdle.com / CURDLASM.ARC / GENMAC.ASM < prev    next >
Encoding:
Assembly Source File  |  1989-01-10  |  1.5 KB  |  52 lines

  1.  
  2.       ;Include file for TASM by John M. Majkrzak CIS# 76617,264
  3.  
  4.     include equates.asm
  5.  
  6.     m_Z macro regs 
  7.       irp reg, <regs>
  8.         xor reg,reg                    ;Set register to zero.
  9.       endm
  10.     endm
  11.  
  12.     m_DoServ macro ServNum, ServInt
  13.       ;perform service interrupt. AH is destroyed.
  14.       irp rList, < <ServNum>, <ServInt> >
  15.         ifb <rList>
  16.           display "Failure to provide parameter to m_DoServ"
  17.           err
  18.         endif
  19.         ifidni <rList>, <ServInt>      ;true only on last pass
  20.           mov  ah, ServNum
  21.           int  ServInt
  22.         endif
  23.       endm
  24.     endm
  25.  
  26.     m_WhereRC macro page
  27.       ;BH register is destroyed.
  28.       ;DX returns cursor RC.
  29.       ifb <PAGE> 
  30.         display "Page number must be given." 
  31.         err 
  32.       endif
  33.       mov  bh, Page
  34.       m_DoServ <snGetCur>, <sVideo>
  35.     endm
  36.  
  37.     m_RetData macro AddrParam, Register
  38.       ;For use with procedures using the stack to pass parameters such as 
  39.       ;Turbo Pascal.  ES and DI registers are destroyed.  Only a single byte 
  40.       ;or word sized value can be returned with this macro.
  41.       irp rList, < <AddrParam>, <Register> >
  42.         ifb <rList>
  43.           display "Failure to provide parameter to m_RetData"
  44.           err
  45.         endif
  46.         ifidni <rList>, <Register>      ;true only on last pass
  47.           les di, [bp + AddrParam]      ;Get address into ES:DI and
  48.           mov [es:di], Register         ;put it where the pointer pointed.
  49.         endif
  50.       endm
  51.     endm
  52.